package com.sxbbc.common.core.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.function.common.RestResponse;
import com.sxbbc.common.core.entity.jz.ProcFirstClassifyShop;
import com.sxbbc.common.core.entity.jz.ProcThirdClassifyShop;

import java.util.List;

/**
 * @author leehao
 * @description 商家分类业务层 避免一二三级分类在不同service层查询
 * @date 2019-05-28
 */
public interface ProcClassifyShopService {

    List<ProcFirstClassifyShop> queryClassifyList(QueryWrapper<ProcFirstClassifyShop> wrapper);

    /**
     * 删除分类 假删除
     * @param id 分类id
     * @param level 层级
     *              1 一级分类
     *              2 二级分类
     *              3 三级分类
     * @author leehao
     * @return com.function.common.RestResponse
     */
    RestResponse deleteClassCategory(Integer id, Integer level);

    /**
     * 查询分类下是否含有数据
     * @param id 分类id
     * @param level 分类层级 一二三级
     * @author leehao
     * @return 含有返回true，反之false
     */
    boolean queryClassifyByPid(Integer id, Integer level);

    /**
     * 动态查询产品分类
     * @param pid 父id
     * @param type 分类
     * @param targetId 目标id
     * @param flag 菜单标记
     *             1一级菜单;2二级菜单;3三级菜单
     * @author leehao
     * @return java.util.List<?>
     */
    List<?> queryClassifyListAjax(Integer pid, Integer type, Integer targetId, Integer flag);

    /**
     * 查询店铺的分类
     * @author leehao
     * @return 分类list对象
     */
    List<?> queryClassifyListByBusiness(ProcThirdClassifyShop thirdClassifyShop);

    /**
     * 新增分类
     * @param shop 分类对象
     * @author leehao
     * @return com.function.common.RestResponse
     */
    RestResponse addClassify(ProcThirdClassifyShop shop);
}
